package com.binance.notification.api.vo;

import com.binance.master.commons.ToString;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.Setter;
import org.hibernate.validator.constraints.NotBlank;

import javax.validation.constraints.NotNull;
import java.util.Date;
import java.util.List;

/**
 * @author lufei
 * @date 2018/11/5
 */
@Setter
@Getter
@ApiModel("消息推送")
public class MessagePushVo extends ToString {

    private static final long serialVersionUID = 9173233733556728367L;

    @ApiModelProperty("消息推送主体ID")
    private Long id;

    @ApiModelProperty("消息类型ID")
    @NotNull(message = "消息类型不能为空")
    private Long type;

    @ApiModelProperty("消息类型名称")
    @NotBlank(message = "消息类型不能为空")
    private String typeName;

    @ApiModelProperty("发送渠道")
    @NotBlank(message = "发送渠道不能为空")
    private String channel;

    @ApiModelProperty("推送类型（立即、定时）")
    private String pushType;

    @ApiModelProperty("推送时间")
    private Date sendTime;

    @ApiModelProperty("目标用户")
    private String users;

    @ApiModelProperty("离线保存时间")
    private Integer holdonHours;

    @ApiModelProperty("APP客户端通知")
    private String appActivity;

    @ApiModelProperty("APP客户端通知地址")
    private String openAppInUrl;

    @ApiModelProperty("APP客户端通知参数")
    private String openAppInUrlParams;

    @ApiModelProperty("APP客户端通知打开网址链接（英文）")
    private String openAppLinkEn;

    @ApiModelProperty("APP客户端通知打开网址链接（中文）")
    private String openAppLinkCn;

    @ApiModelProperty("WEB端通知打开网页页面")
    private String webActivity;

    @ApiModelProperty("WEB端通知Web链接（英文）")
    private String openWebUrlEn;

    @ApiModelProperty("WEB端通知Web链接（中文）")
    private String openWebUrlCn;

    @ApiModelProperty("PC端通知")
    private String pcActivity;

    @ApiModelProperty("PC端通知Web链接（英文）")
    private String openPcWebEn;

    @ApiModelProperty("PC端通知Web链接（中文）")
    private String openPcWebCn;

    @ApiModelProperty("PC端通知引应用内界面")
    private String openPcAppUrl;

    @ApiModelProperty("PC端通知引参数")
    private String openPcAppUrlParams;

    @ApiModelProperty("状态（1待审核，2未发送，3已发送，4已作废，5已删除）")
    private Integer status;

    @ApiModelProperty("创建人")
    private String creator;

    @ApiModelProperty("创建时间")
    private Date createTime;

    @ApiModelProperty("备注说明")
    private String remark;
}
